#include <memory>
#include "udpserver.hpp"
#include "communicationmod.hpp"

//基于线程池的网络聊天程序：发送过来的消息回显给所有连接服务器的人
void useTips(char *command)
{
    cout << "useTips:" << command << " ip" << " port" << endl;
}

int main(int argc, char *argv[])
{
    //EnableFile();
    EnableScreen();

    // if(argc != 3) //指定ip版本
    // {
    //     useTips(argv[0]);
    //     LOG(ERROR, "parameter usage error!");
    //     exit(USE_ERROR);
    // }

    if (argc != 2) // 不指定ip版本
    {
        useTips(argv[0]);
        LOG(ERROR, "parameter usage error!");
        exit(USE_ERROR);
    }

    LOG(INFO, "parameter usage success!");

    // 0.定义一个通讯模块
    CommunicationMod cm;

    // 1、定义一个服务器服务
    unique_ptr<UdpServer> usvr = make_unique<UdpServer>(atoi(argv[1]), std::bind(&CommunicationMod::spreadInfo, &cm, placeholders::_1, placeholders::_2, placeholders::_3)); // c++14特性

    // 2、初始化
    usvr->initServer();

    // 3、启动
    usvr->startServer();

    return 0;
}